<?php 
class ocorrencia_anexoModel extends Model{
    public $tabela = "ocorrencia_anexo";
    public $pkey   = array('cod_mensagem', 'cod_arquivo');
    public $dados  = array(
         'cod_mensagem' => array(
	    'name'     => 'Mensagem',
	    'type'     => 'int',
	    'size'     => '11',
	    'pkey'    => true,
	    'notnull' => true,
	    'grid'    => true,
	    'display' => true,
            'fkey' => array(
	        'model' => 'ocorrencia/mensagem',
	        'cardinalidade' => '1n',
	        'keys' => array('cod_mensagem', 'cod_mensagem'),
                'onupdate' => 'cascade',
                'ondelete' => 'cascade',
	    ),
        ),
        
        'cod_arquivo' => array(
	    'name'     => 'Arquivo',
	    'type'     => 'int',
	    'size'     => '11',
	    'notnull' => true,
	    'grid'    => true,
            'pkey'    => true,
	    'display' => false,
	    'fkey' => array(
	        'model' => 'files/arquivo',
	        'cardinalidade' => '1n',
	        'keys' => array('cod_arquivo', 'name'),
                'onupdate' => 'cascade',
                'ondelete' => 'cascade',
	    )
        ),
        
        'cod_ocorrencia' => array(
	    'name'     => 'Assunto',
	    'type'     => 'int',
	    'size'     => '11',
	    'notnull' => true,
	    'grid'    => true,
	    'display' => false,
	    'fkey' => array(
	        'model' => 'ocorrencia/ocorrencias',
	        'cardinalidade' => '1n',
	        'keys' => array('cod_ocorrencia', 'assunto'),
                'onupdate' => 'cascade',
                'ondelete' => 'cascade',
	    ),
            'feature' => array(
                'feature_name'  => 'OCORRENCIA_OCORRENCIAS',
                'feature_value' => 'true'
            )
        ),
    );
    
    public function anexar($pasta, $cod_mensagem){
        $this->LoadModel('files/pasta', 'pst');
        $cod_pasta = $this->pst->getCodFolder($pasta);
        if($cod_pasta == 0){
            $this->setErrorMessage('Pasta não existe');
            return false;
        }
        
        $this->LoadModel('files/arquivo', 'arq');
        $files = $this->arq->getFilesByUser($cod_pasta);
        if(empty ($files)){return false;}
        
        $arr['cod_mensagem'] = $cod_mensagem;
        $erro = array();
        foreach($files as $file){
            if($file['show_files'] == 'n') continue;
            $arr['cod_arquivo']    = $file['cod_arquivo'];
            $arr['cod_ocorrencia'] = $_SESSION['ocorrencia/ocorrencias'];
            if($this->inserir($arr)){
                $this->arq->changeShowFile($file['cod_arquivo']);
            }else $erro[] = $this->getErrorMessage();
        }
        
        if(!empty ($erro)){
            $erro = implode("<br/>", $erro);
            $this->setErrorMessage($erro);
            return false;
        }
        return true;
    }
    
    public function getAnexoPorMensagem($cod_mensagem){
        $var = $this->selecionar(array('cod_arquivo'), "cod_mensagem = '$cod_mensagem'");
        if(empty ($var)) return array();
        
        $list = array();
        foreach($var as $v){
            $list[] = $v['cod_arquivo'];
        }
        $list = implode(",", $list);
        $this->LoadModel('files/arquivo', 'arq');
        return $this->arq->selecionar(array(), "cod_arquivo IN ($list)");
    }
    
    public function getAnexoPorOcorrencia($cod_ocorrencia){
        
        $this->LoadClassFromPlugin('ocorrencia/mensagem/mensagemSecurity', 'ms');
        $var = $this->selecionar(array('cod_arquivo', 'cod_mensagem'), "cod_ocorrencia = '$cod_ocorrencia'");
        if(empty ($var)) return array();
        
        $list = array();
        foreach($var as $v){
            if(!$this->ms->has_permission($v['cod_arquivo'])) continue;
            $list[] = $v['cod_arquivo'];
        }
        $list = implode(",", $list);
        $this->LoadModel('files/arquivo', 'arq');
        return $this->arq->selecionar(array(), "cod_arquivo IN ($list)");
    }
    
}
?>